|
In programming language theory, a reference type is a data type that refers to an object in memory. A ''pointer type'' on the other hand refers to a memory address. Reference types can be thought of as pointers that are implicitly dereferenced.〔Robert Sebesta. ''Concepts Of Programming Languages'', Tenth Edition, Pearson, 2012, p. 296〕 The objects being referred to are dynamically allocated on the heap whereas value types are allocated automatically on the stack. In languages supporting garbage collection the objects being referred to are destroyed automatically after they become unreachable. When a reference type variable refers to an immutable object it behaves with the same semantics as a primitive value type. The fact that the object being referred to can not be modified by any of the references to it means the only way to change the value of the reference variable is through assignment. The use of the Number classes in the Java programming language is an example of this behavior.〔http://docs.oracle.com/javase/tutorial/java/data/numberclasses.html〕 == Language and platform support == * The .NET Framework makes a clear distinction between value and reference types, and allows creation of user-defined types for both kinds. * * In C# and D, the struct keyword defines a value type, while the class keyword defines a reference type.* * In C++/CLI, the keyword pairs value class and value struct define managed value types, while the ref class and ref struct pairs define managed reference types.* On the Java platform, all composite and user-defined types are reference types. Only primitive types are value types. * Standard ML, OCaml, and F# have a type called ref (reference); it implements a simple mutable cell, although its widespread use is generally discouraged in favor of a more purely functional style.* Windows COM objects are reference-counted reference types. * In many scripting languages, including Python and Ruby, all types are reference types, including those that appear as primitive types. 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「reference type」の詳細全文を読む スポンサード リンク
|